package com.xyz.init.infos;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.xyz.business.bean.Config;
import com.xyz.business.service.ConfigService;
import com.xyz.constant.XYZConstant;

public class ConfigInit {
	private static Map<String, Config> configMap = new HashMap<String, Config>(
			64);
	private static List<Config> configs = new ArrayList<Config>(16);

	/**
	 * 暴露给外部的初始化方法
	 * 
	 * @param configService
	 */
	public static synchronized void init(ConfigService configService) {
		configMap.clear();
		List<Config> totalConfigList = null;
		try {
			totalConfigList = configService.queryAll();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		configs = totalConfigList;
		for (Config config : totalConfigList) {
			configMap.put(config.getConfigid(), config);
		}
		if (null == configMap.get("sys_access_ip")) {
			Config config = new Config();
			config.setConfigid("sys_access_ip");
			config.setConfigvalue("");
			configMap.put("sys_access_ip", config);
		}
	}

	/**
	 * 根据
	 * 
	 * @param configid
	 * @return
	 */
	public static Config getConfig(String configid) {
		return configMap.get(configid);
	}

	/**
	 * 根据
	 * 
	 * @param uid
	 * @return
	 */
	public static String getConfigValue(String configid) {
		if (StringUtils.isBlank(configid) || null == getConfig(configid)) {
			return XYZConstant.EMPTY;
		}
		return getConfig(configid).getConfigvalue();
	}

	/**
	 * 获取
	 * 
	 * @return
	 */
	public static List<Config> getConfigList() {
		return configs;
	}
}
